package enumdemo;

import util.Enums;

/**
 * 枚举中的枚举第三种形式 
 */
public enum EnumCourse {
	APPETIZER(Food.Appetizer.class),
	MAINCOURSE(Food.MainCourse.class),
	DESSERT(Food.Dessert.class),
	COFFEE(Food.Coffee.class)
	;
	Food[] values;
	EnumCourse(Class<? extends Food> kind) {
		values = kind.getEnumConstants();
	}
	public Food randomSelection() {
		return Enums.random(values);
	}
	interface Food {
		enum Appetizer implements Food {
			SALAD,SOUP,SPRING_ROLLS;
		}
		
		enum MainCourse implements Food {
			LASAGNE,BURRITO,PAD_THAI,
			LENTILS,HUMMOUS,VINDALOO;
		}
		
		enum Dessert implements Food {
			TIRAMISU,GELATO,BLACK_FOREST_CAKE,
			FRUIT,CREME_CARAMEL;
		}
		
		enum Coffee implements Food {
			BLACK_COFFEE,DECAF_COFFEE,ESPRESSO,
			LATTE,CAPPUCCINO,TEA,HERB_TEA;
		}
	}
}
